;unsigned int *generar_tabla_apariciones (unsigned char* buf, unsigned int size)
;	unsigned int* tabla = (unsigned int*) calloc(256,sizeof(unsigned int))
;	int i
;	for i=0,i<size,i++
;		tabla[buf[i]]

;	return tabla
%include "macros.mac"
extern calloc
global generar_tabla_apariciones

section .text

%define buf [ebp+8]
%define size [ebp+12]

generar_tabla_apariciones:
	convencion_C 0

	xor ecx,ecx

	push 32
	push 256
	call calloc		;eax = tabla
	mov ebx,buf		;eax = buf
	add esp,8
ciclo_apariciones:
		mov dl,[ebx+ecx]	;esi es buf[i]
		push eax
		xor eax,eax
		mov eax,4
		xor edi,edi
		mul dl
		mov edi,eax		;edi es tabla[buf[i]]
		pop eax
		mov edx,[eax+edi]
		inc edx
		mov [eax+edi],edx
		inc ecx
	cmp ecx,size
	jne ciclo_apariciones

	convencion_C_fin 0
	ret
